14. Break、Continue

Pausa e continuação

备注:在2:03处下方的第四行应该修改为 adding mattresses(34) .

Break、Continue

有时候我们需要更精准地控制何时循环应该结束,或者跳过某个迭代。在这些情况下,我们使用关键字 break continue ,这两个关键字可以用于 for while 循环。

  • break 使循环终止
  • continue 跳过循环的一次迭代

请观看视频并尝试下面的示例,看看这两个关键字的作用。

尝试一下!

你将在下面找到解决视频中的货物装载问题的两个方法。第一个方法是视频中提到的方法,当重量达到上限时,终止循环。但是,我们发现该方法存在多个问题。第二个方法通过修改条件语句并添加 continue 解决了这些问题。请运行下面的代码,看看结果如何,你可以随意实验该代码!

Start Quiz:

manifest = [("bananas", 15), ("mattresses", 24), ("dog kennels", 42), ("machine", 120), ("cheeses", 5)]

# the code breaks the loop when weight exceeds or reaches the limit
print("METHOD 1")
weight = 0
items = []
for cargo_name, cargo_weight in manifest:
    print("current weight: {}".format(weight))
    if weight >= 100:
        print("  breaking loop now!")
        break
    else:
        print("  adding {} ({})".format(cargo_name, cargo_weight))
        items.append(cargo_name)
        weight += cargo_weight

print("\nFinal Weight: {}".format(weight))
print("Final Items: {}".format(items))

# skips an iteration when adding an item would exceed the limit
# breaks the loop if weight is exactly the value of the limit
print("\nMETHOD 2")
weight = 0
items = []
for cargo_name, cargo_weight in manifest:
    print("current weight: {}".format(weight))
    if weight >= 100:
        print("  breaking from the loop now!")
        break
    elif weight + cargo_weight > 100:
        print("  skipping {} ({})".format(cargo_name, cargo_weight))
        continue
    else:
        print("  adding {} ({})".format(cargo_name, cargo_weight))
        items.append(cargo_name)
        weight += cargo_weight

print("\nFinal Weight: {}".format(weight))
print("Final Items: {}".format(items))